Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КІ-12

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка» Звіт: «Лабораторна робота № 7 Перевантаження операторів» Підготував: Ст.гр. КІ-12 Андрощук С.В. Перевірив: Цигилик Л.О. Львів 2008 Завдання Описати клас, що реалізовує вказаний нижче тип даних. Клас повинен містити множину конструкторів для створення об'єктів певного типу (конструктор по замочуванню та з параметрами, конструктор копії) та подані у таблиці операції над об'єктами класу (плюс обов'язково операцію присвоювання) з використанням механізму перевантаження операцій. Написати програму, яка демонструє роботу з об'єктами цього класу. Організувати виведення та введення даних за допомогою класів-потоків сin та cout. Варіант Завдання  1 Клас Matrix (матриця квадратна) Операції: - =, * =.  2 Клас Complex (комплексні числа) Операції: - =, * =.  3 Клас Fraction (дроби) Операції: - =, * =.  4 Клас HugeInt (цілі числа) Операції: - =, порівняння(<, >).  5 Клас Fraction (дроби) Операції: + =, / =.  6 Клас Set (множини) Операції: об’єднання множин(+ =), перетин множин (- =).  7 Клас HugeInt (цілі числа) Операції: * =, + =.   Тхт програми: #include<iostream.h> #include<stdlib.h> #include <conio.h> class Set { friend istream &operator >>(istream& input, Set& arr) ; friend ostream &operator << (ostream& output, Set& arr); public: int* p; int size; public: Set(int k = 14); Set(Set& arr); virtual ~Set(); Set& operator= (Set& ar); Set& operator-= (Set& ar); Set& operator+= (Set& ar); Set operator+ (Set& ar) ; Set operator- (Set& ar) ; int operator!= (Set& ar); int get_count() const { return size ; } }; Set::Set(int k) { size = k; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = 0; } } Set::Set(Set& ar) { size = ar.size; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = ar.p[i]; } } Set::~Set() { delete[] p; } int main () { Set a(7); Set b(7); cout<<"Enter pershu mnoжunu (operacia-=) "<<endl; cin>>a; cout<<"Enter drugu mnoжunu (operacia-=) "<<endl; cin>>b; a-=b; cout<<"resultat operacii '-=' : "<<a<<endl; Set c(7); Set d(7); cout<<"Enter pershu mnoжunu (operacia+=) "<<endl; cin>>c; cout<<"nter drugu mnoжunu (operacia+=) "<<endl; cin>>d; c+=d; cout<<"resultat operacii '+=' : "<<c<<endl; getch(); return 0; } Set& Set::operator= (Set& ar) { if(this != &ar) { delete[] p; size = ar.size; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = ar.p[i]; } } return *this; } Set Set::operator+ (Set& ar) { int m = (size < ar.size) ? size : ar.size; Set t; if(m == ar.size) { t = *this; for(int i = 0; i < m; i++) { t.p[i] += ar.p[i]; } } else { t = ar; for(int i = 0; i < m; i++) { t.p[i] += p[i]; } } return t; } Set& Set::operator+= (Set& ar) { Set t; t = *this + ar; *this = t; return *this; } Висновок: я навчився перевантажувати оператори += and—=. Set Set::operator- (Set& ar) { Set t; int m = (size < ar.size) ? size : ar.size; if(m == ar.size) { t = *this; for(int i = 0; i < m; i++) { t.p[i] -= ar.p[i]; } } else { t = ar; for(int i = 0; i < m; i++) { t.p[i] -= p[i]; } } return t; } Set& Set::operator-= (Set& ar) { Set t; t = *this - ar; *this = t; return *this; } ostream& operator<< (ostream& output, Set& ar) { for(int i = 0; i < ar.size; i++) { output << ar.p[i]; } output << endl; return output; } istream& operator>> (istream& input, Set& ar) { for(int i = 0; i < ar.size; i++) { cout<<"element "<<i+1<<"="; input >> ar.p[i]; } return input;}
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!